package com.yc.tc.dao;

import java.util.List;
import java.util.Map;

import com.yc.tc.beans.UserInfo;

public interface IUserInfoDao {
	/**
	 * 会员注册
	 * @param uf：会员对象
	 * @return: 返回受影响的行数
	 */
	public int addUserInfo(UserInfo uf);
	
	/**
	 * 会员状态信息更改
	 * @param status
	 * @return
	 */
	public int updateUserStatus(int status,int usid);
	
	/**
	 * 检查当前邮箱是否已被注册
	 * @param email：要检查的邮箱
	 * @return：如果已被注册，则放回一个大于0的次数
	 */
	public int checkEmail(String email);
	
	/**
	 * 获取所有已注入的邮箱信息
	 * @return: 所有的已经注册的邮箱
	 */
	public List<String> getAllEmail();
	
	/**
	 * 会员登录
	 * @param email
	 * @param pwd
	 * @return
	 */
	public UserInfo loginUserInfo(String email,String pwd);
	
	/**
	 * 分页查询用户信息，如果pageNo 和 pageSize 为null,则查询所有
	 * @param pageNo：要查询的页数
	 * @param pageSize：每页显示的条数
	 * @return：满总条件的会员信息
	 */
	public List<UserInfo> findUserInfoByPage(Integer pageNo,Integer pageSize);
	
	/**
	 * 多条件组合分页查询
	 * @param map：要查询的条件及对应条件的值
	 * @param pageNo：要查询的页数
	 * @param pageSize：每页显示的条数
	 * @return：满足条件的会员的信息
	 */
	public List<UserInfo> findUserInfo(Map<String,String> map,Integer pageNo,Integer pageSize);
	
	/**
	 * 根据用户注册时间查询会员信息
	 * @param startDate：注册的开始时间
	 * @param endDate：注册的结束时间
	 * @param pageNo：要查询的页数
	 * @param pageSize：每页显示的条数
	 * @return：满足条件的会员信息
	 */
	public List<UserInfo> findUserInfoByDate(String startDate,String endDate,Integer pageNo,Integer pageSize);
	
	/**
	 * 修改用户密码
	 * @param usid
	 * @param oldPwd
	 * @param newPwd
	 * @return
	 */
	public int updatePwd(Integer usid,String oldPwd,String newPwd);
	
	/**
	 * 会员图像修改
	 * @param usid：会员编号
	 * @param photo：图像地址
	 * @return：成功返回大于0的数
	 */
	public int updatePhoto(String usid,String photo);
	
	/**
	 * 会员信息修改
	 * @param uf：新的用户信息
	 * @return：成功返回大于0的数
	 */
	public int updateUserInfo(UserInfo uf);
	
	/**
	 * 会员状态信息的修改
	 * @param usid：要修改的会员编号，如果有多个，用逗号隔开
	 * @return：成功返回大于0的数
	 */
	public int delUserInfo(String usid);
	
	
	/**
	 * 获取总记录数
	 * @return
	 */
	public int getTotal();
	
	
	
	/**
	 * 会员状态信息的修改
	 * @param usid：要修改的会员编号，如果有多个，用逗号隔开
	 * @return：成功返回大于0的数
	 */
	public int delUserInfoBack(String usid);

	/**
	 * 分页查询，为空则查询所有
	 * @param pageNo：要查询的页数
	 * @param pageSize：每页显示的条数
	 * @return：满总条件的会员信息
	 */
	public List<UserInfo> findUserInfoBack(Integer pageNo, Integer pageSize);

	/**
	 * 获取总记录数
	 * @return
	 */
	public int getUserTotalBack();
	/**
	 * 根据用户id来查询用户信息
	 * @param usid
	 * @return
	 */
	public UserInfo find(Integer usid);
	
	public List<UserInfo> findMyPageInfo(Integer usid,Integer pageNo,Integer pageSize );
	//public List<Map<String,Object>> showMyPageInfo(Integer usid);
	public int getyjInfoByUsidTotal(Integer usid);
	
	/**
	 * 按用户名搜索
	 * @param value
	 * @param pageNo
	 * @param pageSize
	 * @return
	 */
	public List<UserInfo> findByUserNameBack(String value,Integer pageNo, Integer pageSize);
}
